package com.dyj.goodlife;

import com.dyj.common.client.BaseClient;
import com.dyj.common.domain.DataAndExtraVo;
import com.dyj.goodlife.domain.query.CreatePartnerOrderQuery;
import com.dyj.goodlife.domain.query.QueryPartnerOrderQuery;
import com.dyj.goodlife.domain.query.SaveCommissionQuery;
import com.dyj.goodlife.domain.vo.*;
import com.dyj.goodlife.handler.PartnerHandler;

/**
 * 生活服务商家应用
 */
public class DyGoodLifeClient extends BaseClient {


    /**
     * 通用接口->代运营->创建合作关系
     * @param body 创建合作关系请求值
     * @return
     */
    public DataAndExtraVo<CreatePartnerOrderVo> createPartnerOrder(CreatePartnerOrderQuery body) {
        return new PartnerHandler(configuration().getAgentByTenantId(tenantId, clientKey)).createPartnerOrder(body);
    }

    /**
     * 通用接口->代运营->合作列表获取
     * @param body 合作列表获取请求值
     * @return
     */
    public DataAndExtraVo<QueryPartnerOrderVo> queryPartnerOrder(QueryPartnerOrderQuery body) {
        return new PartnerHandler(configuration().getAgentByTenantId(tenantId, clientKey)).queryPartnerOrder(body);
    }
    /**
     * 通用接口->代运营->合作详情查询
     * @param orderId 订单id
     * @param withoutProductItems 是否不获取商品佣金 选填
     * @return
     */
    public DataAndExtraVo<GetPartnerOrderVo> getPartnerOrder(String orderId, String withoutProductItems) {
        return new PartnerHandler(configuration().getAgentByTenantId(tenantId, clientKey)).getPartnerOrder(orderId, withoutProductItems);
    }

    /**
     * 通用接口->代运营->创建/修改佣金
     * @param body 创建/修改佣金请求值
     * @return
     */
    public DataAndExtraVo<SaveCommissionVo> saveCommission(SaveCommissionQuery body) {
        return new PartnerHandler(configuration().getAgentByTenantId(tenantId, clientKey)).saveCommission(body);
    }



    /**
     * 通用接口->代运营->佣金变更记录列表
     * @param orderId 订单id
     * @param page 页码，起始页为1，默认为1 选填
     * @param size 页面大小，最大50，默认50 选填
     * @return
     */
    public DataAndExtraVo<QueryCommissionRecordVo> queryCommissionRecord(String orderId, Integer page, Integer size) {
        return new PartnerHandler(configuration().getAgentByTenantId(tenantId, clientKey)).queryCommissionRecord(orderId, page, size);
    }
}
